Pengembangan kernel CUDA dimulai dengan definisi dari sebuah Kernel, yaitu fungsi C++ khusus yang dirancang untuk dieksekusi secara paralel melintasi jumlah inti yang sangat besar dari sebuah GPU NVIDIA. Fungsi-fungsi ini mewakili satuan kerja dasar dalam model pemrograman CUDA, berfungsi sebagai jembatan di mana logika host serial berpindah ke eksekusi perangkat secara paralel masif.
1. Penentu __global__
Penentu __global__ penentu deklarasi adalah kualifikasi API wajib yang memberi tahu kompiler untuk menghasilkan kode untuk GPU sambil tetap membuat titik masuk fungsi terlihat bagi CPU. Fungsi-fungsi yang dieksekusi di GPU dan dapat dipanggil dari host disebut kernel.
2. Lingkungan Eksekusi
Kernel dikirimkan ke dan dieksekusi pada Multiprosesor Streaming (SMs). SM adalah mesin komputasi utama di dalam GPU NVIDIA yang bertanggung jawab atas pengelolaan ratusan thread bersamaan. Setiap SM menangani blok-blok thread dan menjadwalkannya ke inti pemroses.
Aturan Sintaks: Kernel harus secara ketat mengembalikan void. Karena mereka beroperasi secara asinkron dari host, mereka tidak dapat mengembalikan nilai langsung ke CPU; mereka harus menulis hasil kembali ke memori perangkat yang dialokasikan.